class MusicPlayer(object):
    # 定义一个类属性记住第一个被创建的对象的引用
    instance = None
    # 记录是否执行过初始化动作
    init_flag = False
    def __new__(cls) :
        # 1 判断类属性是否是空对象
        if cls.instance is None:
            # 2 调用父类的方法，为第一个对象分配空间
            cls.instance = super().__new__(cls)
        # 3 返回类属性保存的对象引用 
        return cls.instance
    def __init__(self) -> None:
        # 判断是否执行过初始化动作
        # 如果没有执行过，执行初始化，标记类属性为已初始化
        # if self.init_flag :
        #     return
        # print("初始化播放器")
        # self.init_flag = True
        if self.init_flag != True:
            print("初始化播放器")
            self.init_flag = True
# 创建多个对象
player1 = MusicPlayer()
print(player1)

player2 = MusicPlayer()
print(player2)